package annotationAndReflection;

/**
 * @author mubei
 * @date 2021/11/25
 * @description  类加载的链接阶段的准备
 */
public class ClassLoad {
    public static void main(String[] args) {
        Cat cat = new Cat();

        A a = new A();
        System.out.println(a.n2);
    }
}

class A{
    // 属性是如何处理的
    //不会处理  不是静态变量  因此在准备阶段 不会分配内存
    public int n1 = 10;
    // 分配内存   默认初始化 0
    public static int n2 = 20;
    static {
        System.out.println("静态代码块被执行");
        n2 = 30;
    }
    // 分配内存 是一个常量  和类变量不一样  一旦赋值就不变了n3 =  30
    public static final int n3 = 20;

    public A(){
        System.out.println("构造器执行");
    }
}